package psn.kiko.mapper.ddl.table.column;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 查询某张表的列信息
 */
@Mapper
public interface ShowColumnsMapper {
	/**
	 * 查看某张表的列详细信息：Field，Type，Null，Key，Default，Extra
	 * @param schema 数据库名，可不传
	 * @param table 表名
	 * @return 列信息集合
	 */
	@Select("<script>" +
			"SHOW COLUMNS FROM\n" +
			"        <choose>\n" +
			"            <when test=\"schema!=null and schema != ''\">${schema}.${table}</when>\n" +
			"            <otherwise>${table}</otherwise>\n" +
			"        </choose>" +
			"</script>")
	List<Map<String,Object>> showColumnsFrom(
			@Param("schema") String schema ,
			@Param("table") String table
	);
}
